package com.zczc.tagmanagement.dao.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zczc.tagmanagement.dao.TagSortsDao;
import com.zczc.tagmanagement.entity.TagSorts;
import com.zczc.tagmanagement.mapper.TagSortsMapper;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.entity.Example.Criteria;

/**
 * @Author:Mark
 * @Description:
 * @Date: Created on 11:39 2018-12-10
 * @Modify by:
 */
@Repository
public class TagSortsDaoImpl implements TagSortsDao {

  @Autowired
  private TagSortsMapper tagSortsMapper;

  @Override
  public List<TagSorts> selectAllTagSorts() {
    Example example=new Example(TagSorts.class);
    Criteria criteria = example.createCriteria();
    criteria.andEqualTo("deleted",false);
    return tagSortsMapper.selectByExample(example);
  }

  @Override
  public List<TagSorts> getAllSorts() {
    return tagSortsMapper.selectAll();
  }

  @Override
  public Integer addTagSorts(TagSorts tagSorts) {
    return tagSortsMapper.insertSelective(tagSorts);
  }

  @Override
  public Integer updateTagSortsById(TagSorts tagSorts) {
    return tagSortsMapper.updateByPrimaryKeySelective(tagSorts);
  }

  @Override
  public Integer deleteTagSortsLogic(List<String> ids) {
    Example example=new Example(TagSorts.class);
    Criteria criteria = example.createCriteria();
    criteria.andIn("id",ids);
    TagSorts tagSorts=new TagSorts();
    tagSorts.setDeleted(true);
    return tagSortsMapper.updateByExampleSelective(tagSorts,example);
  }

  @Override
  public PageInfo<TagSorts> selectTagSortsByPage(TagSorts tagSorts, Integer pageSize,
      Integer startPage) {
    PageHelper.startPage(startPage,pageSize);
    Example example=new Example(TagSorts.class);
    Criteria criteria = example.createCriteria();
    criteria.andEqualTo("deleted",false);
    if(tagSorts!=null){
      if(tagSorts.getSortName()!=null){
        criteria.andLike("sortName","%"+tagSorts.getSortName()+"%");
      }
    }
    return PageInfo.of(tagSortsMapper.selectByExample(example));
  }
}
